The present invention is directed to digital voice communications. More particularly, the present invention is directed to a method and apparatus for transmitting compressed packetized voice over asynchronous transfer mode.
Asynchronous Transfer Mode (xe2x80x9cATMxe2x80x9d) is based on the switching and multiplexing technique selected by the International Telecommunication Union (xe2x80x9cITUxe2x80x9d) for the broadband access for the Integrated Services Digital Network (xe2x80x9cISDNxe2x80x9d). ATM utilizes a fixed-size packet, referred to as an ATM cell. Each ATM cell is 53 octets (one octet equals one byte) long and is divided into a 5 octet header and 48 octet information field.
The ITU has further defined an ATM adaptation layer (xe2x80x9cAALxe2x80x9d). The AAL is the upper layer of the ATM layer and is responsible for converting user information from higher layers into a 48 octet payload field while the ATM cell layer adds the 5 octet header to make the 53 octet ATM cell. A family of AALs, AAL1 through AAL5, has been defined to handle diverse user applications. The AAL is usually subdivided into two parts: the Common Part Convergence Sub-layer (xe2x80x9cCPCSxe2x80x9d) and the Service-Specific Convergence Sub-layer (xe2x80x9cSSCS xe2x80x9d). The SSCS defines formatting for different applications onto ATM cells.
One increasingly popular use of ATM is to transmit voice packets during telephone calls. In some networks, uncompressed voice packets are transmitted. A single uncompressed voice channel typically requires a bandwidth of 64 Kbps. However, various methods are used to compress voice in order to reduce the bandwidth requirements. For example, ITU G.728 voice coders typically compress voice to 16 Kbps. Of course, as the voice is more and more compressed, the reproduced voice quality is somewhat degraded.
When ATM is used to transmit voice telephone calls, multiple telephone calls are usually multiplexed onto a single physical link. For example, if 30 voice calls were multiplexed on a single physical link, and voice compression is used so that each voice call transmits at 16 Kbps, the total bandwidth required would be 480 Kbps (30xc3x9716 Kbps) plus overhead.
Besides compression, some telecommunication systems suppress silence during a telephone call in order to further reduce the bandwidth. In other words, if there is silence during a telephone conversation, the silence is not transmitted and the required bandwidth is temporarily reduced. When 30 voice calls are multiplexed together as described above, at any given moment approximately 15 voice calls require bandwidth while the other 15 voice calls consist of silence that can be suppressed. Thus, in implementing the 30 voice call system, only 240 Kbps (15xc3x9716 Kbps) may typically be required. However, if only 240 Kbps is allocated, a problem exists during periods when over 15 voice calls at once are in active conversation (i.e., no silence) and more than 240 Kbps of bandwidth is temporarily needed.
One known way to solve this problem is for the system to throw away voice packets (i.e., not transmit selected packets) during the periods when the increased bandwidth is required. However, this will cause the received voice quality to be severely degraded during those periods. Another way to solve the problem is to temporarily xe2x80x9cdown-speedxe2x80x9d the amount of compression (i.e., the compression speed) during the periods when increased bandwidth is required. For example, some G.728 coders down-speed to 12.8 Kbps and 9.6 Kbps during periods of congestion. Using this method, the degradation of the received voice signal is minimized compared with dropping packets. When increased bandwidth is no longer required, the coder can xe2x80x9cup-speedxe2x80x9d back to its nominal speed of 16 Kbps.
One method for forming and transmitting voice packets that can accommodate down-speeding and up-speeding of voice compression has been proposed by the ITU. This method is referred to as the xe2x80x9cI.trunk Transmitter Procedures for Voice Servicexe2x80x9d (xe2x80x9cI.trunkxe2x80x9d). I.trunk builds on AAL2 which is an AAL that supports variable size packets, sometimes referred to as xe2x80x9cmini-packets.xe2x80x9d With I.trunk, whenever a compression speed changes, due to either down-speeding or up-speeding, the packet that is forming is cut off and a new packet is formed. Therefore, each packet is homogenous because each packet contains a single type of compression. Multiple AAL2 packets are included in one ATM cell.
One problem with I.trunk is that the mini-packets require two levels of switching for a large network. One layer of switching is the ATM cell layer. A second layer of switching is the AAL2 packet within the ATM cell layer, since I.trunk places multiple packets in each ATM cell. However, two layers of switching requires more complicated and more expensive equipment on an ATM network.
Based on the foregoing, there is a need for a method and apparatus for forming and transmitting voice packets over ATM cells that can accommodate down-speeding and up-speeding of voice compression without requiring xe2x80x9ctwo-layerxe2x80x9d switching and can enable the ATM cell to be efficiently packed.
One embodiment of the present invention is a system for transmitting compressed voice packets over ATM. The system receives a plurality of voice data units and an encoding rule for each voice data unit. A packet is formed from the received data units. The packet includes a header. The header includes the amount of data units in the packet, and the encoding rule for each packet. The packet is then placed in an ATM cell which is transmitted on an ATM virtual channel. The ATM cell includes at most one packet. To achieve high packing efficiency, the ATM cell contains as many data units as possible, even when the data units are of different types.
The present invention allows a single packet to include data units formed with different encoding rules (i.e., a mixed mode packet). This accommodates the dynamic nature of up-speeding and down-speeding. Further, the present invention does not require two-layer switching because the ATM cell includes only one packet.